This invention relates to industrial control systems for controlling factories and the like, and in particular to an industrial control system where a control program is executed by many spatially separated processing units.
Centralized industrial controllers such as those described in U.S. Pat. Nos. 3,810,118; 3,942,158; 4,165,534; and 4,442,504 are high speed computers that may be connected to industrial equipment, such as an automated assembly line or machine tool, to operate such equipment in accordance with a stored program. The stored program includes instructions, which when executed, examine the condition of selected inputs to the centralized controller from sensing devices on the controlled equipment, and energize or de-energize selected outputs or actuators from the centralized controller to operate devices on the controlled equipment.
Inputs to the industrial controller may be discrete binary signals, such as those from switches, which may detect limits of process variables such as motion, temperature, time or other quantities or the inputs may be analog measures of process variables which are generally then converted to digital words for processing, or the inputs may be multivariable information. Similarly, the outputs of the industrial controller are provided by mechanical or solid state relays, if the outputs are binary; or by means of a digital analog converter if the outputs are analog voltages or the like.
Some of the inputs and outputs to the centralized controller may be remotely located from the centralized controller and connected to the controller by means of a dedicated digital communication link. Typically, the link connects the centralized controller with a remote I/O rack at which a number of inputs and outputs are clustered.
The centralized architecture of current industrial control systems reflects the historically high cost of computer hardware that is minimized by the use of a single centralized controller. Computer hardware is much cheaper now, nevertheless, centralized architecture still provides important advantages. A centralized controller provides a convenient single location for generating reports about operation of the controlled process for handling faults in the control process, for initializing the control system, and for synchronizing tasks. A centralized controller capable of holding the entire control program simplifies programming, editing, and troubleshooting of the control program, and allows use of well established software tools for these purposes. Most control programs in use today are written for centralized controllers; conversion of these programs to other architectures would be costly and time consuming.
Nevertheless, the centralized controller architecture is not ideal for all tasks. In a "highly distributed control system", the control program is allocated among many spatially separate and smaller controllers. These controllers may be located near particular points on the controlled process where inputs are obtained from a controlled process or outputs to the controlled process are produced. Such highly distributed control can be extremely fast because of the effective parallel processing of the multiple controllers and, in certain circumstances, inexpensive because the proximity of the controllers to their control points reduces expensive point to point wiring. On the other hand, highly distributed control systems may be prone to bandwidth limitation problems insofar as the variables for the control program must be constantly rebroadcast to other distributed controllers possibly overtaxing the capacity of the common communications link.
For many control applications, neither a centralized controller nor a highly distributed controller will provide the perfect solution. In these cases, a hybrid system, for example, one using some highly distributed architecture components with a centralized controller might be desired. Generally, however, these two architectures are incompatible.